package com.xiaoye.qbproject.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoye.qbproject.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 战争战例
 *
 * @TableName QB_WARFARE_EXAMPLES
 */

@Data
public class QbWarfareExamplesImportV2Vo implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @Excel(name = "主键")
    private String id;
    /**
     * 战例标题
     */
    @Excel(name = "战例标题")
    private String title;
    /**
     * 战例名称
     */
    @Excel(name = "战例名称")
    private String name;
    /**
     * 分类标签
     */
    @Excel(name = "分类标签")
    private String classifyLabel;
    /**
     * 装备标签
     */
    @Excel(name = "装备标签")
    private String equipLabel;
    /**
     * 交战时间
     */
    @Excel(name = "交战时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date fightTime;
    /**
     * 交战时间字符串
     */
    private String fightTimeStr;
    /**
     * 交战地点
     */
    @Excel(name = "交战地点")
    private String fightAddress;
    /**
     * 地点经度
     */
    @Excel(name = "地点经度")
    private BigDecimal jd;
    /**
     * 地点纬度
     */
    @Excel(name = "地点纬度")
    private BigDecimal wd;
    /**
     * 进攻方
     */
    @Excel(name = "攻方")
    private String aggressor;
    /**
     * 守方
     */
    @Excel(name = "守方")
    private String defense;
    /**
     * 攻方兵力
     */
    @Excel(name = "攻方兵力")
    private String aggressorTroops;
    /**
     * 守方兵力
     */
    @Excel(name = "守方兵力")
    private String defenseTroops;
    /**
     * 攻方主要装备
     */
    @Excel(name = "攻方主要装备")
    private String aggressorEquip;
    /**
     * 守方主要装备
     */
    @Excel(name = "守方主要装备")
    private String defenseEquip;
    /**
     * 环境因素
     */
    @Excel(name = "环境因素")
    private String environmentalFactor;
    /**
     * 作战外部条件
     */
    @Excel(name = "作战外部条件")
    private String externalConditions;
    /**
     * 作战过程
     */
    @Excel(name = "作战过程")
    private String process;
    /**
     * 典型战术
     */
    @Excel(name = "典型战术")
    private String tactics;
    /**
     * 战损及战果
     */
    @Excel(name = "战损及战果")
    private String warResult;
    /**
     * 图片视频
     */
    @Excel(name = "图片视频")
    private String imageVideo;
    /**
     * 报道时间
     */
    @Excel(name = "报道时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date registerTime;
    /**
     * 事件ID
     */
    @Excel(name = "事件id")
    private String eventId;
    /**
     * 原文
     */
    @Excel(name = "原文")
    private String originalText;
    /**
     * 译文
     */
    @Excel(name = "译文")
    private String translation;
    /**
     * 链接
     */
    @Excel(name = "链接")
    private String url;
    /**
     * 来源
     */
    @Excel(name = "来源")
    private String source;
    /**
     * 语言类型
     */
    @Excel(name = "语言类型")
    private String linguisticType;

    /**
     * 所属战争ID
     */
    @Excel(name = "所属战争ID")
    private String warfareId;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;


    @Override
    public String toString() {
        String sb = getClass().getSimpleName() +
                " [" +
                "Hash = " + hashCode() +
                ", id=" + id +
                ", title=" + title +
                ", name=" + name +
                ", classifyLabel=" + classifyLabel +
                ", equipLabel=" + equipLabel +
                ", fightTime=" + fightTime +
                ", fightAddress=" + fightAddress +
                ", jd=" + jd +
                ", wd=" + wd +
                ", aggressor=" + aggressor +
                ", defense=" + defense +
                ", aggressorTroops=" + aggressorTroops +
                ", defenseTroops=" + defenseTroops +
                ", aggressorEquip=" + aggressorEquip +
                ", defenseEquip=" + defenseEquip +
                ", environmentalFactor=" + environmentalFactor +
                ", externalConditions=" + externalConditions +
                ", process=" + process +
                ", tactics=" + tactics +
                ", warResult=" + warResult +
                ", imageVideo=" + imageVideo +
                ", registerTime=" + registerTime +
                ", eventId=" + eventId +
                ", originalText=" + originalText +
                ", translation=" + translation +
                ", url=" + url +
                ", source=" + source +
                ", linguisticType=" + linguisticType +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", serialVersionUID=" + serialVersionUID +
                "]";
        return sb;
    }
}